/*
 * @Author: zhoujinlong 765637726@qq.com
 * @Date: 2024-02-26 09:08:40
 * @LastEditors: zhoujinlong 765637726@qq.com
 * @LastEditTime: 2024-05-06 16:54:13
 * @FilePath: \pingxi\vite.config.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { resolve } from "path";
import postcssPxToViewport from "postcss-px-to-viewport";
import postcssPxToRem from "postcss-pxtorem";
import viteCompression from "vite-plugin-compression";
import legacy from "@vitejs/plugin-legacy";
import removeConsole from "vite-plugin-remove-console";
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    legacy({
      targets: ["defaults", "not IE 11"],
    }),
    viteCompression({
      verbose: false, // 不显示gzip压缩信息
      threshold: 1024 * 10, // 10kb
    }),
    removeConsole()
  ],

  resolve: {
    alias: [
      {
        find: "@",
        replacement: resolve(__dirname, "src"),
      },
    ],
    extensions: [".js", ".ts", ".jsx", ".tsx", ".json", ".vue"],
  },
  base: "./",
  build: {
    outDir: "dist",
    assetsDir: "assets", //指定静态资源存放路径
    sourcemap: false, //是否构建source map 文件
    terserOptions: {
      // 生产环境移除console
      compress: {
        drop_console: true,
        drop_debugger: true,
      },
    },
  },
  server: {
    port: 5160,
    proxy: {
      "/api": {
        // secure: true, // 是否https接口 
        // target: "http://192.168.100.64", 
        target: "http://192.168.20.29:8071", 
        // target: "http://192.168.20.211:8071", 
        // target: "http://10.129.60.31",  
        changeOrigin: true, //是否跨域
        rewrite: (path) => path.replace(/^\/api/, ""),
      },  
    },
  }, 
 
  css: {
    // postcss: {
    //   plugins: [
    //     postcssPxToViewport({
    //       unitToConvert: "px", // 要转化的单位
    //       viewportWidth: 1920, // UI设计稿的宽度
    //       unitPrecision: 6, // 转换后的精度，即小数点位数
    //       propList: ["*"], // 指定转换的css属性的单位，*代表全部css属性的单位都进行转换
    //       viewportUnit: "vw", // 指定需要转换成的视窗单位，默认vw
    //       fontViewportUnit: "vw", // 指定字体需要转换成的视窗单位，默认vw
    //       // minPixelValue: 1, // 默认值1，小于或等于1px则不进行转换
    //       mediaQuery: true, // 是否在媒体查询的css代码中也进行转换，默认false
    //       replace: true, // 是否转换后直接更换属性值
    //       selectorBlackList: [".ignore"], // 指定不转换为视窗单位的类，可以自定义，可以无限添加,建议定义一至两个通用的类名
    //       // exclude: [/node_modules/], // 设置忽略文件，用正则做目录名匹配
    //       // exclude: [/node_modules/, /src\/views\/dayWork\//,/src\/views\/error\//,/src\/views\/home\//,/src\/views\/reportManager\//,/src\/views\/smokeManager\//,/src\/views\/systemManager\//], // 设置忽略文件，用正则做目录名匹配
    //       landscape: false, // 是否处理横屏情况
    //       // include:['src/views/home/home.vue']
    //     }),
    //   ],
    // },

    postcss: {
      plugins: [
        postcssPxToRem({
          rootValue: 37.5, // UI设计稿的宽度/10
            unitPrecision: 3, // 转rem精确到小数点多少位
            propList: ['*'], // 需要转换的属性 *表示所有
            selectorBlackList: ['ignore'], // 不进行px转换的选择器
            replace: true, // 是否直接更换属性值，而不添加备用属性
            mediaQuery: false, // 是否在媒体查询的css代码中也进行转换
            minPixelValue: 0, // 设置要替换的最小像素值
            exclude: /node_modules/i // 排除node_modules文件夹下的文件 
        }),
      ],
    },
  },
});




